Skip to content

Added super_diff gem for improved diffing in tests#953

Merged
dblock merged 4 commits into
ruby-grape:masterfrom
numbata:super_diff_usage
May 18, 2025
Merged

Added super_diff gem for improved diffing in tests#953
dblock merged 4 commits into
ruby-grape:masterfrom
numbata:super_diff_usage

Conversation

@numbata

@numbata numbata commented May 9, 2025

Copy link
Copy Markdown
Contributor

Leverage the super_diff gem to significantly enhance the clarity of diffs in failing RSpec tests.

Before:

       expected: [{"in"=>"header", "name"=>"postMultipleNestedParamsInBody", "required"=>true, "schema"=>{"$ref"=>"#/definitions/postMultipleNestedParamsInBody"}}]
            got: [{"in"=>"body", "name"=>"postMultipleNestedParamsInBody", "required"=>true, "schema"=>{"$ref"=>"#/definitions/postMultipleNestedParamsInBody"}}]

       (compared using eql?)

       Diff:
       @@ -1,4 +1,4 @@
       -[{"in"=>"header",
       +[{"in"=>"body",
          "name"=>"postMultipleNestedParamsInBody",
          "required"=>true,
          "schema"=>{"$ref"=>"#/definitions/postMultipleNestedParamsInBody"}}]

After:

       expected: [{ "name" => "postMultipleNestedParamsInBody", "in" => "header", "required" => true, "schema" => { "$ref" => "#/definitions/postMultipleNestedParamsInBody" } }]
            got: [{ "name" => "postMultipleNestedParamsInBody", "in" => "body", "required" => true, "schema" => { "$ref" => "#/definitions/postMultipleNestedParamsInBody" } }]

       (compared using eql?)

       Diff:

        (Key) ──────────────────────────┐
        - in expected, not in actual  
        + in actual, not in expected  
          in both expected and actual 
       └─────────────────────────────────┘

         [
           {
             "name" => "postMultipleNestedParamsInBody",
       -     "in" => "header",
       +     "in" => "body",
             "required" => true,
             "schema" => {
               "$ref" => "#/definitions/postMultipleNestedParamsInBody"
             }
           }
         ]

@dblock

dblock commented May 11, 2025

Copy link
Copy Markdown
Member

Any reason not to require it all the time?

@numbata numbata changed the title Improved spec diffing with optional super_diff Added super_diff extension for improved diffing in tests May 12, 2025
@numbata numbata changed the title Added super_diff extension for improved diffing in tests Added super_diff gem for improved diffing in tests May 12, 2025
@numbata

numbata commented May 12, 2025

Copy link
Copy Markdown
Contributor Author

@dblock actually, no real reason. It can makes the diffs a bit longer, and if core code has issues the report can grow indefinitely.

@olivier-thatch

Copy link
Copy Markdown
Contributor

👍 Nice change, I was also annoyed by how hard the diffs were to parse when working on #951.

@dblock

dblock commented May 13, 2025

Copy link
Copy Markdown
Member

CI looks borked :(

@numbata

numbata commented May 13, 2025

Copy link
Copy Markdown
Contributor Author

@dblock true. Because of fresh changes in ruby-dev. #954 should fix it.

@dblock

dblock commented May 14, 2025

Copy link
Copy Markdown
Member

Rebase this one?

@numbata numbata force-pushed the super_diff_usage branch from 9cde5ae to 4bcab24 Compare May 14, 2025 20:09
@numbata

numbata commented May 14, 2025

Copy link
Copy Markdown
Contributor Author

@dblock done

@dblock dblock merged commit e0282ab into ruby-grape:master May 18, 2025
21 checks passed
numbata added a commit to numbata/grape-swagger that referenced this pull request Dec 6, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants